<?
if (preg_match("#" . basename(__FILE__) . "#", $_SERVER['PHP_SELF'])) {
	die('This page cannot be called directly.') ;
}

class ajax_room
{
	function playme()
	{
        $code = Url::getParam('code');
        //yêu cầu đặt tên $code=tên của method trong class
        if (method_exists($this, $code))
        {
            $this->$code();
        }
        else
        {
            $this->home();
        }
	}
	
	function home()
	{
		global $display;
		die("Nothing to do...");
	}
	
	function save_price()
	{
        $data=array('room_id'=>Url::getInt('room_id', 0));
        
        if(Db_Room::have_permit(array('room_edit'), $data['room_id']))
        {
            $id = Url::getInt('id', 0);
            $data['name'] = Url::get('name');
            $data['date_start'] = strtotime(Url::get('date_start'));
            $data['date_end'] = strtotime(Url::get('date_end'));
            $data['price'] = Url::getInt('price');
            $data['status'] = 1;//Url::getInt('status');
            $data['desc'] = Url::get('desc');
            $data['note'] = Url::get('note');
           
             if($id) {
                /* ko cho sua gia */
                echo '{"type":1,"sysmsg":"not permission","msg":"Bạn không có quyền sửa giá."}';
                return;
                /* ko cho sua gia */
                $data['user_id_m'] = User::id();
                $data['user_email_m'] = User::user_email();
                $data['time_m'] = TIME_NOW;
                if(Db_RoomPrice::update($id, $data, __FILE__ . ' line ' . __LINE__)) {
                    echo json_encode(array(
                        'type'=>0,
                        'sysmsg'=>'success',
                        'msg'=>'Lưu thành công.'
                    ));
                } else {
                    echo json_encode(array(
                        'type'=>1,
                        'sysmsg'=>'save error',
                        'msg'=>'Lưu không thành công.'
                    ));
                }
            } else {
                $data['user_id'] = User::id();
                $data['user_email'] = User::user_email();
                $data['time_c'] = TIME_NOW;
                if($id = Db_RoomPrice::check_then_insert($data,$message, __FILE__ . ' line ' . __LINE__)) {
                    echo json_encode(array(
                        'type'=>0,
                        'sysmsg'=>'success',
                        'msg'=>'Thêm mới thành công.',
                        'id'=>$id,
                        'date_start'=>$data['date_start'],
                        'date_end'=>$data['date_end']
                    ));
                } else {
                    echo json_encode(array(
                        'type'=>1,
                        'sysmsg'=>'added new error',
                        'msg'=>$message
                    ));
                }
            }
        } else {
            echo json_encode(array(
                'type'=>1,
                'sysmsg'=>'not permission',
                'msg'=>'Bạn không có quyền thêm hoặc sửa giá phòng.'
            ));
        }
    }

    function delete_price() {
        $id = Url::getInt('id', 0);
        if(Db_Room::have_price_permit($id)) {
            $data = array('status'=>2, 'user_id_del'=>User::id(),
                'user_email_del'=>User::user_email(), 'time_del'=>TIME_NOW);
            if(Db_RoomPrice::update($id, $data, __FILE__ . ' line ' . __LINE__)) {
                echo '{"type":0,"sysmsg":"success","msg":"Xóa giá thành công."}';
            } else {
                echo '{"type":1,"sysmsg":"delete error","msg":"Có lỗi trong quá trình xóa giá."}';
            }
        } else {
            echo '{"type":1,"sysmsg":"not permission","msg":"Bạn không có quyền xóa giá."}';
        }
    }
    function getRoomsbyHotelId(){
        $hotel_id = Url::getInt('hotel_id',0);
        if($hotel_id != '' && $hotel_id > 0){
            $rooms = Db_Room::getRoomsByHotelId($hotel_id);
            if(sizeof($rooms)>0){
               $html =  '<select name="room_id" id="room_id">;
                    <option value="0">Chọn phòng</option>';
               foreach ($rooms as $room)
                        $html .= '<option value="'.$room['id'].'">'.$room['name'].'</option>';
                $html .= '</select>';
                echo $html;
                exit;
            }
        }  else {
            echo 'false';
            exit;
        }
        
    }
    function change_price_byTime(){
        if(!User::is_login())
        {
            echo "not_login";
            exit;
        }
        $room_id = Url::getInt('room');
        $ngay = Url::get('ngay','');
        $nam = Url::get('nam','');
        $price = Url::getInt('price',0);
        $note = Url::get('note','');
        if($room_id)
        {
            $get_date = explode('/',$ngay);
            $int_date = mktime("0","0","0",$get_date[1],$get_date[0],$nam);
                //Check ngày là quá khứ thì ko cập nhật
                if($int_date >= strtotime(date('d-m-Y')))
                {
                    // check có bị confict ngày ko?
                    $data = DB::exists("SELECT id,price_history FROM check_room WHERE room_id=$room_id AND check_time = $int_date", __FILE__ . ' line ' . __LINE__);
                   //var_dump($data);
                    if($data == false){
                        $room = Db_Room::getRoomById($room_id);
                        if($room)
                        {
                            if($room['hotel_id'])
                            {
                                $hotel = Db_Hotel::getHotelById($room['hotel_id']);
                                $hotel_ids = Db_Hotel::get_hotel_ids(User::id());
                                $arr_hotelId = explode(',',$hotel_ids);
                                if($hotel)
                                {
                                    if(User::have_permit("admin_room_status") || in_array($room['hotel_id'], $arr_hotelId))
                                    {
                                        //
                                        $new = array();
                                        $new['room_id'] = $room_id;
                                        $new['price'] = $price;
                                        $new['status'] = 1;
                                        $new['check_time'] = $int_date;
                                        $new['user_email'] = User::user_email();
                                        $tmp = array();
                                        $history = array();
                                        $tmp['time'] = TIME_NOW;
                                        $tmp['price'] = $price;
                                        $tmp['note'] = $note;
                                        $tmp['user'] = $new['user_email'];
                                        $history[] = $tmp;
                                        $new['price_history'] = json_encode($history);
                                        if(DB::insert('check_room',$new, __FILE__ . ' line ' . __LINE__))
                                                echo 'success';
                                            else {
                                                echo 'database';
                                            }
                                    }
                                    else
                                    {
                                        echo "no_perm";
                                        exit;
                                    }
                                }
                            }
                        }
                    }else{
                        //update
                                        $new = array();
                                        $new['price'] = $price;
                                        $new['user_email'] = User::user_email();
                                        $tmp = array();
                                        $tmp['time'] = TIME_NOW;
                                        $tmp['price'] = $price;
                                        $tmp['note'] = $note;
                                        $tmp['user'] = $new['user_email'];
                                        $note_arr = json_decode($data['price_history']);
                                        $note_arr [] = $tmp;
                                        $new['price_history'] = json_encode($note_arr);
                                        if(DB::update('check_room',$new,"room_id=$room_id AND check_time = $int_date"))
                                                echo 'success';
                                            else {
                                                echo 'database';
                                                exit;
                                            }
                    }

                }
                else//Ngày đã qua
                {
                    echo "day_over";
                    return ;
                }
        }
    }
    function view_history_price(){
        
        if(!User::is_login())
        {
            echo "not_login";
            exit;
        }
        $room_id = Url::getInt('room_id');
        $ngay = Url::get('ngay','');
        $nam = Url::get('nam','');
        if($room_id)
        {
            $get_date = explode('/',$ngay);
            $int_date = mktime("0","0","0",$get_date[1],$get_date[0],$nam);
                //Check ngày là quá khứ thì ko cập nhật
            $default = DB::fetch('SELECT price FROM room WHERE id = '.$room_id,'price');
            $html = '';
            $html .= 'Mặc định: '.number_format($default, 0, ',', ' ').' đ<br />';
            $history = DB::fetch('SELECT price_history FROM check_room WHERE room_id ='.$room_id.' AND check_time = '.$int_date);
            if($history != ''){
                $history = json_decode($history['price_history']);
                if(is_array($history))
                foreach ($history as $h){
                    $html .= date('G:i:s',$h->time).' - Giá: '.number_format($h->price, 0, ',', ' ').' đ ,'.$h->note;
                    if(isset($h->user))
                        $html .= '<span style="font-style:italic;"> ('.$h->user.') </span>';
                    $html .= '<br />';
                }
            }
            echo $html;
            exit;
        }
    }
}
?>